1. Field of the Invention
The present invention relates to a layout verifying system for an integrated circuit, and more particularly to a layout verifying system for layout data of a semiconductor integrated circuit which contains a large amount of repetitive figure data.
2. Description of the Related Art
Layout data of a semiconductor integrated circuit is expressed as a set of figures each of which a plurality of polygons are combined. The number of figures of the layout data is generally large, as many as tens of millions. Therefore, a lot of time and computer resources are necessary to process the layout data by a computer.
As one design process which is performed to the layout data of such an integrated circuit, there is layout verification. The layout verification is mainly divided into physical size verification (DRC) and circuit connection verification (LVS). When the layout verification is performed, it is necessary to perform a figure operating process to the layout data which is composed of a plurality of figures. Here, the figure operating process to the figures means a logic summation of the overlapping figures, a logic product between overlapping figures, and/or transformation of a figure such as expansion, and reduction. By performing such a figure operating process, the figure data can be re-formed to internal data which matches the layout verification such as the DRC and the LVS. For this reason, in the layout verifying system, the figure operating process is an extremely important process.
Especially, in the layout data of an integrated circuit such as a DRAM, a portion of the layout data is composed of a plurality of figures, which are arranged repetitively and periodically. Therefore, when a figure operating process is performed to the layout data of the integrated circuit, it is needed that the figure operating process can be performed at high speed to the figures which are arranged repetitively and periodically.
Next, the repetitive figures and the figure operating process will be described below.
For the figures which are arranged repetitively and periodically, it is generally possible to be expressed by a figure data composed of shape data and position data of a figure element as a basic unit and an array data, as shown in FIGS. 3A and 3B. The shape data represents the shape of the figure element and the position data represents the position coordinate of the figure element. Such repetitive and periodic figures are referred to as a figure array hereinafter. The array data represents the arrangement pitches between the figure elements in horizontal and vertical directions and arrangement numbers of figure elements in horizontal and vertical directions.
The figure data of the figure array and the array data thereof are stored in a memory in case of computer processing, as shown in FIG. 3B. This data structure needs only a small memory capacity, compared with the case which data representing figures are distributedly stored in the memory. Thus, when a great deal of figure data are processed, it is very important how many figure data can be manipulated as the figure array.
To perform a figure operating process, a data representing the overlapping between the figures, i.e., an overlap indication, data is necessary in addition to the figure data and the array data. This is expressed as a set of identifications, each of which is allocated for each figure data, as shown in FIGS. 4A to 4D. This data is referred to as an overlap indication data.
An actual figure operating process is performed not to each of the figure data but to a group of figure data for figures which overlap each other. More specifically, the figure data where can be traced in accordance with the overlapping portions are collected into a group. Hereinafter, these groups are referred to as chain groups, as shown in FIG. 5A to 5C by a reference numeral 93, 94 and 95, respectively. The results that the figure operating process of logic summation is performed to the chain groups 90, 91 and 92 are shown in FIGS. 5A to 5C by reference numerals 93, 94 and 95, respectively. In this way, when the figure operating process is performed, the inputted figure data must be first grouped into the chain groups based on the overlap indication data and then processed.
A conventional figure processing apparatus for the figure array will be explained with reference to FIGS. 1 to 8.
The structure of the conventional figure processing apparatus will be explained with reference to a system block diagram of FIG. 1. As shown in FIG. 1, the conventional figure processing apparatus is composed of an input unit 11 for inputting figure data, a storage unit 12 for storing the figure data and an overlap indication data, a data processing unit 13 for performing a figure operating process to the figure data based on the overlap indication data, and an outputting unit 14 for outputting the processing result. The storage unit 12 is composed of a figure data storage section 15 for storing the figure data, and an overlap indication data storage section 16 for storing the overlap indication data. Also, the data processing unit 13 is composed of an overlap indication data processing section 17 for inputting the overlap indication data to process, a chain group generating section 8 for producing a chain group from the overlap indication data and a figure data operating section 19 for performing a figure operating process for every chain group.
The operation when an figure array is processed by the conventional figure processing apparatus will be described with reference to a flow chart of FIG. 2.
The figure data is sequentially read from the figure data storage section 12 one by one. Here, the case that the read figure data is for a figure array will be described.
First, a figure array C is read from the figure data storage section 15 by the inputting unit 11 (step S21). Next, if the overlap indication data of the figure array C is present (yes in step S22), the overlap indication data processing section 17 reads the overlap indication data from the overlap indication data storage section 16. At this time, as shown in FIG. 6, because the figure data A and B are present which can be traced based on the overlap indication data, the figure data C is registered in a chain group in which the figure data A and B have been already registered (step S23). In case of the registration of the figure data C, it is determined whether the array data of the figure array C is coincident with the array data of figure arrays A and B (Step S24).
If the array data are both coincident with each other, the figure array can be registered in the chain group as it is. However, as shown in FIG. 6, when the array data of the figure array C is different from those of the figure arrays A and B, the figure C is not possible to be processed as the same figure array as the figure array A or B. In accordance with, the figure array C must be developed as a plurality of figures. Also, because figures of the chain group are connected to have overlapping portions, all the figures of the figure arrays must be developed when one of the figures of the figure array is developed. If not, the figure operating process can not be performed. This means that the figures of the figure array B are developed based on the figure array C and also the figures of the figure array A are developed based on the figure array B (Steps S25 and S26).
In this manner, the chain group ABC is divided into chain groups E to J, as shown in FIG. 7. If all the inputted figures are registered on the chain groups (yes in step S27), the figure operating process is performed to each of the chain groups (step S28). FIG. 8 shows the result of the logic summation of the figure operating process to the figure arrays A, B and C. Lastly, a figure operating process result is outputted.
The primary problem is in that if a figure array has different array data from already registered figure arrays, the figure operating process must be performed, after the figure array is developed to the respective figures. The reason is that because the overlapping state between the figures depends on the arrangement position, the figure operating process result of the basic element figure can not be applied to the result of each arrangement position. If the array data of the figure array as the calculation object is the same, the figure operating process can be completed, when only the figure operating process to the figure element of the figure array in the lower left corner as a basic unit is performed. This is because all the overlapping states are the same over the other figures of the figure array, so that the figure operating process result can be applied to the other figures. On the contrary, the overlapping states are different between the respective figures if the array data are different. Therefore, the figure array needs that the figure operating process is performed for each figure after the respective figures are developed.
The second problem is in that when one figure of the chain group is developed, all the figures of the figure arrays which are contained in the chain group must be developed. The reason is that all the figures of the figure arrays which are contained in the chain group are connected via the overlapping portions one after another. For this reason, if the same array data is set to the figures having the overlapping portion, all the figures of the figure arrays must be developed when one of the figures of the figure arrays is developed.
In addition, a layout verifying system is disclosed in Japanese Laid Open Patent Disclosure (JP-A-Heisei 6-162139). In this reference, before layout verification is executed, a figure array is changed of layout components of a memory matrix such as a memory cell M, a row decoder amplifier X, a column decoder amplifier Y, a sense amplifier S and latch circuits L. Also, the figure array is shifted toward an original one of the figures of the figure array to re-structure of the figure array. Thus, the layout verification of a memory matrix is made possible.